package com.sinog.front.controller.biz;

import com.sinog.core.utilbean.Result;
import com.sinog.front.config.idempotent.Idempotent;
import com.sinog.front.config.log.Log;
import com.sinog.front.feign.biz.OrgStaffInfoService;
import com.sinog.front.service.user.UserFacade;
import com.sinog.front.util.ObjectConvertUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

/**
 * @desc 安帮工作资源管理 - 机构人员信息管理 - 机构人员信息管理 - OrgStaffInfoController
 * @author dangyf
 * @date 2020年3月10日 9点48分
 */
@RestController
public class OrgStaffInfoController {

    @Resource
    private OrgStaffInfoService orgStaffInfoService;
    @Autowired
    private UserFacade userService;

    /**
     * 安帮工作资源管理 - 机构人员信息管理 - 机构人员信息管理 - 列表
     * @param request 用于接收页面页码和每页条数
     * @param searchKey 搜索条件
     * @param searchDepart searchDepart
     * @return json字符串
     */
    @GetMapping("/azbj/jgryxx/getOrgStaffInfoList")
    public String getOrgStaffInfoList(HttpServletRequest request,
                                      @RequestParam(required = false, defaultValue = "-1") String searchKey,
                                      @RequestParam(required = false, defaultValue = "-1") String searchDepart) {
        Integer pageIndex = Integer.valueOf(request.getParameter("pageIndex"));
        Integer pageSize = Integer.valueOf(request.getParameter("pageSize"));
        String departId = userService.getAuthentication().getDepartid();
        return orgStaffInfoService.getOrgStaffInfoList(searchKey,pageIndex,pageSize,departId,searchDepart);
    }

    /**
     * 安帮工作资源管理 - 机构人员信息管理 - 机构人员信息管理 - 保存机构人员信息（修改/新增）
     * @param request request
     * @param data data
     * @return Result
     */
    @Log(type = "新增", value = "保存机构人员信息（修改/新增）")
    @Idempotent(paramPos = 1)
    @PostMapping("/azbj/jgryxx/orgStaffInfo/save")
    public Result staffInfoManageSave(HttpServletRequest request,String data) {
        return orgStaffInfoService.save(data,ObjectConvertUtil.userToMap(userService.getAuthentication()));
    }

    /**
     * 安帮工作资源管理 - 机构人员信息管理 - 机构人员信息管理 - 删除工作人员信息
     * @param request request
     * @param id id
     * @return Result
     */
    @Log(type = "删除", value = "删除工作人员信息")
    @DeleteMapping("/azbj/jgryxx/orgStaffInfo/delete/{id}")
    public Result orgStaffInfoDel(HttpServletRequest request,@PathVariable String id) {
        return orgStaffInfoService.deleteOne(id);
    }
}